//package com.dmgis.hndz.service.impl;
//
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONObject;
//import com.baomidou.mybatisplus.core.toolkit.StringUtils;
//import com.dmgis.hndz.common.utils.DmgisUtils;
//import com.dmgis.hndz.common.utils.DocxUtil;
//import com.dmgis.hndz.common.utils.LayerUtil;
////import com.dmgis.hndz.mapper.MapUpdateMapper;
//import com.dmgis.hndz.mapper.Ybba02bMapper;
//
//import com.dmgis.hndz.pojo.*;
//import com.dmgis.hndz.pojoVo.HiddenVo;
//import com.dmgis.hndz.service.EmergencyService;
//import com.dmgis.hndz.service.Zhaa01aService;
//import com.dmgis.service.DmServiceConnector;
//import org.apache.poi.util.Units;
//import org.apache.poi.xwpf.usermodel.*;
//import org.apache.xmlbeans.XmlCursor;
//import org.ini4j.Ini;
//import org.ini4j.Wini;
//import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPageSz;
//import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSectPr;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.boot.system.ApplicationHome;
//import org.springframework.data.mongodb.core.MongoTemplate;
//import org.springframework.http.HttpHeaders;
//import org.springframework.http.HttpStatus;
//import org.springframework.http.MediaType;
//
//import org.springframework.http.ResponseEntity;
//import org.springframework.stereotype.Service;
//import org.springframework.web.multipart.MultipartFile;
//
//import javax.annotation.Resource;
//import java.io.*;
//import java.text.ParseException;
//import java.text.SimpleDateFormat;
//import java.time.LocalDateTime;
//import java.time.ZoneOffset;
//import java.time.format.DateTimeFormatter;
//import java.util.*;
//import java.util.stream.Collectors;
//
//@Service
//public class EmergencyServiceImpl implements EmergencyService {
//
//    @Autowired
//    private Zhaa01aService zhaa01aService;
//
////    @Resource
////    private MapUpdateMapper mapUpdateMapper;
//
//    @Resource
//    private MongoTemplate mongoTemplate;
//
//    @Value("${dmgis.ip}")
//    private String dmgisIp;
//
//    @Value("${dmgis.port}")
//    private String dmgisPort;
//
//    @Value("${dmgis.serveName}")
//    private String serveName;
//
//    @Autowired
//    private Ybba02bMapper ybba02bMapper;
//
//    @Override
//    public Map<String, Object> createFile(Integer issueNum,
//                                          String userName,
//                                          String yjType,
//                                          String sXType,
//                                          String date,
//                                          String timeChar,
//                                          Integer nTimes,
//                                          String colorAndPos,
//                                          String posStr,
//                                          MultipartFile[] images,
//                                          String layerName,
//                                          String dlData,
//                                          int type1) throws IOException, ParseException {
//        //模板路径
//        String templatePath;
//        //产品路径
//        String targetPath;
//        //配置文件路径
//        String configFilePath;
//        String qx = "";
//        String xz = "";
//        String zw = "";
//        String ys = "";
//        String ling = "";
//
//        ApplicationHome applicationHome = new ApplicationHome(this.getClass());
//        if (type1 == 2){
//            templatePath = applicationHome.getDir().getParentFile().getParentFile().getAbsolutePath() +
//                    "\\src\\main\\resources\\Documents\\风险预警模板\\地质灾害气象风险预警中短期模板.docx";
//            targetPath = applicationHome.getDir().getParentFile().getParentFile().getAbsolutePath() +
//                    "\\src\\main\\resources\\temp\\地质灾害气象风险预警中短期文档.docx";
//            configFilePath = applicationHome.getDir().getParentFile().getParentFile().getAbsolutePath() +
//                    "\\src\\main\\resources\\Documents\\风险预警模板\\预警内容地灾.ini";
//        }else if(type1 == 1) {
//            templatePath = applicationHome.getDir().getParentFile().getParentFile().getAbsolutePath() +
//                    "\\src\\main\\resources\\Documents\\风险预警模板\\地质灾害气象风险预警短期模板.docx";
//            targetPath = applicationHome.getDir().getParentFile().getParentFile().getAbsolutePath() +
//                    "\\src\\main\\resources\\temp\\地质灾害气象风险预警短期文档.docx";
//            configFilePath = applicationHome.getDir().getParentFile().getParentFile().getAbsolutePath() +
//                    "\\src\\main\\resources\\Documents\\风险预警模板\\预警内容地灾.ini";
//        }else {
//            templatePath = applicationHome.getDir().getParentFile().getParentFile().getAbsolutePath() +
//                    "\\src\\main\\resources\\Documents\\风险预警模板\\地质灾害气象风险预警模板.docx";
//            targetPath = applicationHome.getDir().getParentFile().getParentFile().getAbsolutePath() +
//                    "\\src\\main\\resources\\temp\\地质灾害气象风险预警文档.docx";
//            configFilePath = applicationHome.getDir().getParentFile().getParentFile().getAbsolutePath() +
//                    "\\src\\main\\resources\\Documents\\风险预警模板\\预警内容地灾.ini";
//        }
//
//        List<Location>  map = new ArrayList<>();
//        Map<Integer, List<ColorAndNameDto>> colorAndNameMap = new HashMap<>();
//        //json字符串转换为对象列表
//        List<ColorAndPos> posList = JSON.parseArray(colorAndPos, ColorAndPos.class);
//        //获取预警区内乡镇数据
//        for (ColorAndPos typeAndPos : posList) {
//            String type = typeAndPos.getColor();
////            if (type.equals("0")) {
////                continue;
////            }
//            String color = "";
//            switch (type) {
//                case "0":
//                    color = "黄色";
//                    break;
//                case "1":
//                    color = "橙色";
//                    break;
//                case "2":
//                    color = "红色";
//                    break;
//            }
//            //多边形查询乡界面
//            map = DmgisUtils.getCountryMap(dmgisIp,dmgisPort,serveName,typeAndPos.getPos());
//
//            for (Location obj : map) {
//                ColorAndNameDto colorAndNameDto = new ColorAndNameDto();
//                colorAndNameDto.setCounty(obj.getCounty());
//                qx += obj.getName() + " ";
//                xz += obj.getCounty() + " ";
//                colorAndNameDto.setCountry(obj.getName());
//                colorAndNameDto.setType(Integer.parseInt(type));
//                zw += obj.getCounty()+color+"预警,";
//                ys += color+"预警,";
//                ling += "0,";
//                colorAndNameDto.setColor(color);
//                List<ColorAndNameDto> colorAndNameDtoList = null;
//                if (colorAndNameMap.containsKey(Integer.parseInt(type))) {
//                    colorAndNameDtoList = colorAndNameMap.get(Integer.parseInt(type));
//                } else {
//                    colorAndNameDtoList = new ArrayList<>();
//                }
//                colorAndNameDtoList.add(colorAndNameDto);
//                List<ColorAndNameDto> collect = colorAndNameDtoList.stream().distinct().collect(Collectors.toList());
//                colorAndNameMap.put(Integer.parseInt(type), collect);
//
//
//            }
//
//            //解析返回结果
////            colorAndNameMap.putAll(getColorAndNameMap(type,color,map));
//        }
//
//
//        //读取配置文件获取正文
//        Wini ini = new Wini(new BufferedReader(new InputStreamReader(new FileInputStream(configFilePath), "GBK")));
//        Ini.Section section = ini.get("DOCS");
//        String docType = "";
//        if (colorAndNameMap.containsKey(0) && !colorAndNameMap.containsKey(1) && !colorAndNameMap.containsKey(2)) {
//            docType = section.get("doc1");
//        } else if (!colorAndNameMap.containsKey(0) && colorAndNameMap.containsKey(1) && !colorAndNameMap.containsKey(2)) {
//            docType = section.get("doc2");
//        } else if (!colorAndNameMap.containsKey(0) && !colorAndNameMap.containsKey(1) && colorAndNameMap.containsKey(2)) {
//            docType = section.get("doc3");
//        } else if (colorAndNameMap.containsKey(0) && colorAndNameMap.containsKey(1) && !colorAndNameMap.containsKey(2)) {
//            docType = section.get("doc12");
//        } else if (colorAndNameMap.containsKey(0) && !colorAndNameMap.containsKey(1) && colorAndNameMap.containsKey(2)) {
//            docType = section.get("doc13");
//        } else if (!colorAndNameMap.containsKey(0) && colorAndNameMap.containsKey(1) && colorAndNameMap.containsKey(2)) {
//            docType = section.get("doc23");
//        } else if (colorAndNameMap.containsKey(1) && colorAndNameMap.containsKey(2) && colorAndNameMap.containsKey(0)) {
//            docType = section.get("doc123");
//        }
//        //一级区县内容
//        StringBuilder country1 = new StringBuilder();
//        //二级区县内容
//        StringBuilder country2 = new StringBuilder();
//        //三级区县内容
//        StringBuilder country3 = new StringBuilder();
//
//        List<ColorAndNameDto> colorAndNameDtoListAll = new ArrayList<>();
//        if (colorAndNameMap.containsKey(0)) {
//            List<ColorAndNameDto> colorAndNameDtoList = colorAndNameMap.get(0);
//            colorAndNameDtoListAll.addAll(colorAndNameDtoList);
//            for (ColorAndNameDto colorAndNameDto : colorAndNameDtoList) {
//                country1.append(colorAndNameDto.getCountry()).append(",");
//            }
//            country1.deleteCharAt(country1.length() - 1);
//        }
//        if (colorAndNameMap.containsKey(1)) {
//            List<ColorAndNameDto> colorAndNameDtoList = colorAndNameMap.get(1);
//            colorAndNameDtoListAll.addAll(colorAndNameDtoList);
//            for (ColorAndNameDto colorAndNameDto : colorAndNameDtoList) {
//                country2.append(colorAndNameDto.getCountry()).append(",");
//            }
//            country2.deleteCharAt(country2.length() - 1);
//
//        }
//        if (colorAndNameMap.containsKey(2)) {
//            List<ColorAndNameDto> colorAndNameDtoList = colorAndNameMap.get(2);
//            colorAndNameDtoListAll.addAll(colorAndNameDtoList);
//            for (ColorAndNameDto colorAndNameDto : colorAndNameDtoList) {
//                country3.append(colorAndNameDto.getCountry()).append(",");
//            }
//            country3.deleteCharAt(country3.length() - 1);
//        }
//        //替换正文内容
//        docType = docType.replace("[一级区县]", country1.toString());
//        docType = docType.replace("[二级区县]", country2.toString());
//        docType = docType.replace("[三级区县]", country3.toString());
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日HH时");
//        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
//        SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy年MM月dd日");
//        SimpleDateFormat sdf4 = new SimpleDateFormat("yyyyMM");
//        SimpleDateFormat sdf5 = new SimpleDateFormat("yyyy");
//        //   String year = sdf5.format(date);
//        String year = "2024";
//        Date date1 = sdf.parse(date);
//        docType = docType.replace("[发布时间]",sdf1.format(new Date()));
//        docType = docType.replace("[批号]",String.valueOf(issueNum));
//        docType = docType.replace("[预警起报点]",sdf3.format(date1)+timeChar+"时");
//        docType = docType.replace("[预警时长]",String.valueOf(nTimes));
//        docType = docType.replace("[预警时效]",sdf3.format(date1)+timeChar+"时起"+nTimes+"小时");
//        //设置点集合区县内容
//        DzWarning dzWarning = new DzWarning();
//        dzWarning.setPos(posStr);
//        dzWarning.setGradearea3(country1.toString());
//        dzWarning.setGradearea4(country2.toString());
//        dzWarning.setGradearea5(country3.toString());
//        //解析地理分析数据
//        List<Object> layerObjectList = new ArrayList<>();
//        if (StringUtils.isNotBlank(dlData) && StringUtils.isNotBlank(layerName)) {
//            try {
//                List<LayerRcoDto> LayerRcoDtoList = JSON.parseArray(dlData, LayerRcoDto.class);
//                Class layerClass = LayerUtil.getLayerClass(layerName);
//                for (LayerRcoDto layerRcoDto : LayerRcoDtoList) {
//                    JSONObject rcoValObject = (JSONObject) layerRcoDto.getRcoValObject();
//                    Object javaObject = JSON.toJavaObject(rcoValObject, layerClass);
//                    layerObjectList.add(javaObject);
//                }
//            } catch (Exception e) {
//                System.err.println("地理分析数据解析错误");
//            }
//        }
//
//        //生成文档
//        try (
//                InputStream templateInputStream = new FileInputStream(templatePath);
//                OutputStream targetOutputStream = new FileOutputStream(targetPath);
//                XWPFDocument document = new XWPFDocument(templateInputStream);
//                ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
//        ) {
//            List<XWPFParagraph> paragraphs = document.getParagraphs();
//            //段落替换
////            String[] placeholders = new String[]{
////                    "[年份]",
////                    "[文件号]", "[签发人1]", "[签发人2]", "[时间1]","[时间2]","[预警情况1]","[时间3]"};
//            String[] placeholders = new String[]{
//                    "[年份]",
//                    "[文件号]", "[时间1]","[时间2]","[预警情况1]","[时间3]"};
//            //替换内容
////            String[] replacements = new String[]{
////                    year,
////                    String.valueOf(issueNum), "毛  硕", "蔡荣辉", sdf3.format(date1),sdf3.format(date1)+timeChar+"时", docType
////                    , sdf3.format(date1)
////            };
//            String[] replacements = new String[]{
//                    year,
//                    String.valueOf(issueNum), sdf3.format(date1),sdf3.format(date1)+timeChar+"时", docType
//                    , sdf3.format(date1)
//            };
//
//            for (int i = 0; i < paragraphs.size(); i++) {
//                XWPFParagraph paragraph = paragraphs.get(i);
//                String text = paragraph.getText();
//
//                DocxUtil.replaceTextInParagraph(paragraph, placeholders, replacements);
//
//
//                //插入图片
//                if (StringUtils.isNotBlank(text) && text.contains("[图1]")) {
//                    System.out.println(images.length + "--------------------------------------------" +
//                            "-----------------------------------------------------------------------" +
//                            "----------------------------------------------------------------------" +
//                            "-----------------------------------------");
//                    //获取下标
//                    XmlCursor cursor = paragraph.getCTP().newCursor();
//                    XWPFParagraph newPara = document.insertNewParagraph(cursor);
//                    newPara.setAlignment(ParagraphAlignment.CENTER);//居中
//                    XWPFRun newParaRun = newPara.createRun();
//
//                    for (MultipartFile image : images) {
//                        //插入图片
//                        CTSectPr sectPr = document.getDocument().getBody().getSectPr();
//                        CTPageSz pageSize = sectPr.getPgSz();
//                        int pageWidth = pageSize.getW().intValue()/25;
//                        int pageHeight = pageSize.getH().intValue()/25;
//                        newParaRun.addPicture(image.getInputStream(), XWPFDocument.PICTURE_TYPE_PNG, "kill.png,", Units.toEMU(pageWidth), Units.toEMU(pageHeight));
//                    }
//                    document.removeBodyElement(document.getPosOfParagraph(paragraph));
//                }
//                //插入预警区表格
//                if (StringUtils.isNotBlank(text) && text.contains("[表1]")) {
//                    //获取下标
//                    XmlCursor cursor = paragraph.getCTP().newCursor();
//                    XWPFTable table = document.insertNewTbl(cursor);
//                    //添加表头
//                    XWPFTableRow row_0 = table.getRow(0);
//                    row_0.getCell(0).setText("区县");
//                    row_0.addNewTableCell().setText("乡镇");
//                    row_0.addNewTableCell().setText("预警等级");
//
//                    colorAndNameDtoListAll.forEach(country -> {
//                        XWPFTableRow dataRow = table.createRow();
//                        dataRow.getCell(0).setText(country.getCounty());
//                        dataRow.getCell(1).setText(country.getCountry());
//                        dataRow.getCell(2).setText(country.getColor());
//                    });
//                    DocxUtil.setTableLocation(table, "center");
//                    DocxUtil.setCellLocation(table, "CENTER", "center");
//                    document.removeBodyElement(document.getPosOfParagraph(paragraph));
//                }
//                //插入地理分析数据表格
//                if (layerObjectList.size() > 0 && StringUtils.isNotBlank(text) && text.contains("[预警信息表]")) {
//                    System.out.println("插入地理分析表格数据");
//                    //获取下标
//                    XmlCursor cursor = paragraph.getCTP().newCursor();
//                    XWPFTable table = document.insertNewTbl(cursor);
//                    //插入图层表格数据
//                    DocxUtil.insertTablaLayerData(layerName,layerObjectList,table);
//                    DocxUtil.setTableLocation(table, "center");
//                    DocxUtil.setCellLocation(table, "CENTER", "center");
//                    document.removeBodyElement(document.getPosOfParagraph(paragraph));
//
//                }
//            }
//            // 将生成的文档保存到输出文件
//            document.write(targetOutputStream);
//
//            //获取文档名称
//
//            String productName = "地质灾害预警文档"+sdf4.format(date1)+".docx";
//            //插入地质预警表数据
////            dzWarning.setDatechar(sdf.parse(sdf2.format(date1)));
////            dzWarning.setTimechar(timeChar);
////            dzWarning.setNtimes(nTimes);
////            dzWarning.setState(1);
////            dzWarning.setFirst(userName);
////            dzWarning.setSecond(userName);
////            dzWarning.setThird(userName);
////            dzWarning.setIsrelease(0);
////            dzWarning.setShflag(0);
////            dzWarning.setForetype(0);
////            dzWarning.setWarningtype(sXType);
////            dzWarning.setDocpath(productName);
////            dzWarning.setWarn_result(docType);
////            dzWarningMapper.insert(dzWarning);
//
////            InputStream inputStream1 = images[0].getInputStream();
////            for (int i = 1; i < images.length; i++) {
////
////            }
//
//
//            // 创建时间
//            Date datetime = new Date();
//            // 将时间转为 LocalDateTime
//            LocalDateTime localDateTime = datetime.toInstant().atOffset(ZoneOffset.ofHours(8)).toLocalDateTime();
//            Ybba02b ybba02b = new Ybba02b();
//            ybba02b.setYbba02b010(new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new Date()));//获取时分秒当id
//            ybba02b.setYbba02b020(productName);
//            ybba02b.setYbba02b030(localDateTime);
//            ybba02b.setYbba02b040(xz);
//            ybba02b.setYbba02b050(ling);
//            ybba02b.setYbba02b060(ys);
//            ybba02b.setYbba02b070(qx);
//            ybba02b.setYbba02b080(null);
//            ybba02b.setYbba02b090("怀化");
//            ybba02b.setYbba02b100(xz);
//            ybba02b.setYbba02b110(zw);
//            ybba02b.setYbba02b120(type1);
//            ybba02bMapper.insert(ybba02b);
//
//
////            // 假设你有一个获取数据库连接的方法getConnection()
////            Connection con = null;
////            try {
////                Class.forName("org.postgresql.Driver");
////                con = DriverManager.getConnection("jdbc:postgresql://192.168.0.143:5432/postgres"
////                        , "postgres", "123456");
////                // 关闭自动提交
////                con.setAutoCommit(false);
////                // 创建时间
////                LocalDateTime localDateTime = LocalDateTime.now(ZoneOffset.ofHours(8));
////
////                Ybba02b ybba02b = new Ybba02b();
////                ybba02b.setYbba02b010(localDateTime.format(DateTimeFormatter.ofPattern("yyyy.MM.dd.HH.mm.ss")));
////                ybba02b.setYbba02b020(productName);
////                ybba02b.setYbba02b030(localDateTime);
////                ybba02b.setYbba02b040(xz);
////                ybba02b.setYbba02b050(colorAndPos);
////                ybba02b.setYbba02b060(colorAndPos);
////                ybba02b.setYbba02b070(qx);
////
////                // 获取第一个图片的输入流
////                InputStream inputStream1 = images[0].getInputStream();
////
////                ybba02b.setYbba02b080(inputStream1);
////                ybba02b.setYbba02b090("怀化");
////                ybba02b.setYbba02b100(xz);
////                ybba02b.setYbba02b110(zw);
////                ybba02b.setYbba02b120(type1);
////
////                // 插入数据并管理事务
////                ybba02bMapper.insert(ybba02b);
////                con.commit(); // 成功执行后提交事务
////
////            }catch (Exception e) {
////                try {
////                    con.rollback(); // 出现异常时回滚事务
////                } catch (SQLException ex) {
////                    ex.printStackTrace();
////                }
////                e.printStackTrace();
////            } finally {
////                try {
////                    if (con != null && !con.isClosed()) {
////                        con.setAutoCommit(true); // 恢复自动提交状态
////                        con.close(); // 关闭连接
////                    }
////                } catch (SQLException e) {
////                    e.printStackTrace();
////                }
////            }
//
//
////            //保存基本产品表数据
//            BaseProduct baseProduct = new BaseProduct();
//            baseProduct.setProductname(productName);
//            baseProduct.setProducttype(yjType+sXType);
//            baseProduct.setForecasttime(date1);
//            baseProduct.setMaketime(new Date());
//            baseProduct.setBindid(dzWarning.getDocid());
//            baseProduct.setMaker(userName);
////            baseProductMapper.insert(baseProduct);
//            byte[] buffer = new byte[1024];
//            int bytesRead;
//            FileInputStream inputStream = new FileInputStream(targetPath);
//            while ((bytesRead = inputStream.read(buffer)) != -1) {
//                byteArrayOutputStream.write(buffer, 0, bytesRead);
//            }
//            byte[] byteArray = byteArrayOutputStream.toByteArray();
//            //保存到mongodb库中
//            HyDocFile hyDocFile = new HyDocFile();
//            hyDocFile.setData(byteArray);
//            hyDocFile.setTable_name("base_product");
//            hyDocFile.setId(String.valueOf(ybba02b.getYbba02b010()));
//            mongoTemplate.save(hyDocFile);
//            // 设置前端响应
//            HttpHeaders headers = new HttpHeaders();
//            headers.setContentDispositionFormData("attachment", "dzyjwd.docx");
//            headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
//            headers.setContentLength(byteArray.length);
//
//            return null;
//        } catch (Exception e) {
//            e.printStackTrace();
//            System.err.println("文档生成失败");
//        }
//
//        return null;
//    }
//
////    @Override
////    public List<Zhyhd> UpdateMap(String mapType) {
////        List<Zhyhd> zhyhdList = new ArrayList<>();
////        //上次图层更新时间
////        if (mapType.equals("隐患点")){
////            String onDate =  mapUpdateMapper.updateData(mapType);
////            //现在时间
////            // 获取当前时间
////            LocalDateTime currentTime = LocalDateTime.now();
////            // 格式化时间为精确到秒的字符串
////            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
////            String nowDate = currentTime.format(formatter);
////            //隐患点图层更新
////           //得到新增点的点集合
////            List<String> wybhlist = mapUpdateMapper.slectAddyhd(onDate,nowDate);
////
////            for (String wybh :wybhlist){
////                if (mapUpdateMapper.slectyhd(wybh)!=null){
////                    continue;
////                }
////                List<Zhaa11A> zhaa11A = mapUpdateMapper.slectyhd(wybh);
////                Zhyhd zhyhd = new Zhyhd();
////                zhyhd.setZhdCity(zhaa11A.get(0).getZhaa11A034());
////                zhyhd.setZhdShi(zhaa11A.get(0).getZhaa11A030());
////                zhyhd.setZhdlat(zhaa11A.get(0).getZhaa11A056());
////                zhyhd.setZhdlon(zhaa11A.get(0).getZhaa11A054());
////                zhyhd.setZhdName(zhaa11A.get(0).getZhaa11A022());
////                zhyhd.setZhdxqdj(zhaa11A.get(0).getZhaa11A084());
////                zhyhdList.add(zhyhd);
////            }
////        }else if (mapType.equals("监测点")){
////            String onDate =  mapUpdateMapper.updateData(mapType);
////
////        }
////        //调用插件服务
////
////
////        return zhyhdList;
////    }
//}
